/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.dp1.pucp.Util;

import java.awt.event.KeyEvent;
import java.text.DecimalFormat;
import java.text.FieldPosition;
import java.text.NumberFormat;
import java.text.ParsePosition;
import java.util.Locale;
import javax.swing.JOptionPane;

/**
 *
 * @author jorge
 */
public class Validaciones {

    public static String letras = "abcdefghijklmnopqrstuvwxyz";
    public static String numeros = "0123456789";

    public static void mostrarMensajeErrorVal(String mensaje) {
        JOptionPane.showMessageDialog(null, mensaje, "Error", JOptionPane.ERROR_MESSAGE);
    }

    public static void mostrarMensajeAvisoVal(String mensaje) {
        JOptionPane.showMessageDialog(null, mensaje, "Información", JOptionPane.INFORMATION_MESSAGE);
    }

    public static int solicitarConfirmacionVal(String mensaje) {
        return JOptionPane.showConfirmDialog(null, mensaje, "Confirmación", JOptionPane.YES_NO_OPTION);
    }

    public static int solicitarConfirmacionSalida(String ventana) {
        return JOptionPane.showOptionDialog(null, "¿Desea salir de " + ventana + "?", "Confirmación Salida",
                JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null,
                new Object[]{"Si", "No"}, "Si");
    }
    
    public static String toCamelCase(final String init) {
        if (init == null) {
            return null;
        }

        final StringBuilder ret = new StringBuilder(init.length());

        for (final String word : init.split(" ")) {
            if (!word.isEmpty()) {
                ret.append(word.substring(0, 1).toUpperCase());
                ret.append(word.substring(1).toLowerCase());
            }
            if (!(ret.length() == init.length())) {
                ret.append(" ");
            }
        }

        return ret.toString();
    }

    public static void soloTexto(KeyEvent evt) {
        //ESTE METODO PUEDE SERVIR PARA NOMBRES O DESCRIPCIONES.
        char c = evt.getKeyChar();
        String badchars = "0123456789”¢€→¶↓“»←«°¡¿{}[]¬|@·~½¬`~!@#$%^&*()_+=\\|':;?/><";
        if ((badchars.indexOf(c) > -1)) {
            evt.consume();
            return;
        }
        if (c == '-') {
            evt.consume();
        }
    }

    public static void soloCorreo(KeyEvent evt) {
        //ESTE METODO PUEDE SERVIR PARA NOMBRES O DESCRIPCIONES.
        char c = evt.getKeyChar();
        String badchars = "”¢€→¶↓“»←«°¡¿{}[]¬|·~½¬`~!#$%^&*()_+=\\|':;?/><";
        if ((badchars.indexOf(c) > -1)) {
            evt.consume();
            return;
        }
        if (c == '-') {
            evt.consume();
        }
    }

    public static void soloDigito(KeyEvent evt) {
        char c = evt.getKeyChar();
        String badchars = "”¢€→¶↓“»←«°¡¿{}[]¬|@·~½¬`~!@#$%^&*()_+=\\|\"':;?/>.<,-";
        if (Character.isLetter(c) || badchars.indexOf(c) > -1) {
            evt.consume();
        }
    }

    public static void soloReal(KeyEvent evt) {
        char c = evt.getKeyChar();
        String badchars = "”¢€→¶↓“»←«°¡¿{}[]¬|@·~½¬`~!@#$%^&*()_+=\\|\"':;?/><,-";
        if (Character.isLetter(c) || badchars.indexOf(c) > -1) {
            evt.consume();
        }
    }

    public static void soloDigitoPunto(KeyEvent evt) {
        char c = evt.getKeyChar();
        String badchars = "”¢€→¶↓“»←«°¡¿{}[]¬|@·~½¬`~!@#$%^&*()_+=\\|\"':;?/><,-";
        if (Character.isLetter(c) || badchars.indexOf(c) > -1) {
            evt.consume();
        }
    }

    public static void caracterUnico(KeyEvent evt, String texto, char cr) {
        char c = evt.getKeyChar();
        if (c == cr && texto.indexOf(c) != -1) {
            evt.consume();
        }
    }

    public static void soloDigitoTexto(KeyEvent evt) {
        char c = evt.getKeyChar();
        String badchars = "”¢€→¶↓“»←«°¡¿{}[]¬|@·~½¬`~!@#$%^&*()_+=\\|\"':;?/>.<,-";
        if (badchars.indexOf(c) > -1) {
            evt.consume();
        }
    }

    public static void soloDigitoTextoPuntuacion(KeyEvent evt) {
        char c = evt.getKeyChar();
        String badchars = "”¢€→¶↓“»←«°¡¿{}[]¬|@·~½¬`~!@#$%^&*()+=\\|\"'?/><";
        if (badchars.indexOf(c) > -1) {
            evt.consume();
        }
    }

    public static void validaSoloNumeros(java.awt.event.KeyEvent evt) {
        char c = evt.getKeyChar();
        String badchars = "”¢€→¶↓“»←«°¡¿{}[]¬|@·~½¬`~!@#$%^&*()_+=\\|\"':;?/>.<, ";
        if ((Character.isLetter(c) && !evt.isAltDown()) || badchars.indexOf(c) > -1) {
            evt.consume();
            return;
        }
        if (c == '-') {
            evt.consume();
        }
    }

    public static void validaSoloText(java.awt.event.KeyEvent evt) {
        //ESTE METODO PUEDE SERVIR PARA NOMBRES O DESCRIPCIONES.
        char c = evt.getKeyChar();
        String badchars = "0123456789”¢€→¶↓“»←«°¡¿{}[]¬|@·~½¬`~!@#$%^&*()_+=\\|\"':;?/>.<, ";
        if ((badchars.indexOf(c) > -1)) {
            evt.consume();
            return;
        }
        if (c == '-') {
            evt.consume();
        }

    }

    public static void soloTextoyNumeros(KeyEvent evt) {
        //ESTE METODO PUEDE SERVIR PARA NOMBRES O DESCRIPCIONES.
        char c = evt.getKeyChar();
        String badchars = "”¢€→¶↓“»←«°¡¿{}[]¬|@·~½¬`~!@#$%^&*()_+=\\|\"':;?/>.<,";
        if ((badchars.indexOf(c) > -1)) {
            evt.consume();
            return;
        }
        if (c == '-') {
            evt.consume();
        }
    }

    public static void deshabilitaCtrlV(KeyEvent evt) {
        //ESTE METODO PUEDE SERVIR PARA NOMBRES O DESCRIPCIONES.
        char c = evt.getKeyChar();
        int modif = evt.getModifiers();

        if (c == '\u0016' && modif == KeyEvent.CTRL_MASK) {
            evt.consume();
            return;
        }
    }
    
    public static boolean isNumeric(String string) {
      return string.matches("\\d+(\\.\\d+)?$");
    }
}
